Field of Art
This disclosure relates to exporting data from a database system in general and in particular to specific methods and system for exporting a subset of data stored on a database system to another database system.
Description of the Related Art
Enterprises use databases to store information related to the enterprise, for example, information describing products, sales, inventory, employees, and so on. A database storing information of an enterprise can be complex. For example, a relational database for a typical enterprise can represent several thousand database objects including database tables, indexes, views, and so on, as well as relations between these database objects. Furthermore, the amount of data stored in databases for certain enterprises can be large. For example, a database may store information describing transactions executed by an enterprise. An enterprise may execute hundreds of thousands of transactions every day. Over a period of several months or years, the amount of information stored in the database can grow to a very large size. It is not uncommon for databases to store tens, or even hundreds of millions of records. Managing large and complex databases consumes significant computational resources. For example, performing typical database operations such as backup, replication, and so on may require significant hardware resources.
One operation often performed using production databases is exporting the data of the production system. For example, data from production databases is exported for testing and debugging issues. Testing and debugging often requires operations that are disruptive for a production system, for example, shutting down the system, restarting the system, running test loads, executing code that is not fully tested, and so on. Since production systems typically need to be available for continuous use, database administrators avoid testing and debugging a live production system. However, a system similar in configuration to the production system is required to reproduce the problems observed in the production system.
Therefore, system administrators typically make a copy of the production database for testing and debugging. However, making a copy of a large and complex production database can require significant amount of time and computing resources. Some system administrators reduce the amount of data copied to the test system by exporting a subset of data relevant for purposes of testing and debugging. However, determining a subset of data of a large and complex production database requires executing database queries and commands on the production database and can itself be a resource consuming task. Furthermore, these database queries are executed on a production system and slow down the production system. Therefore, conventional techniques for making a copy of the production database or a copying a subset of the production database to another system often are inadequate.